package com.app.housemanage.service;

import com.app.housemanage.domain.Properties;
import com.app.housemanage.domain.dto.PropertyQueryDTO;
import com.app.housemanage.domain.vo.PropertiyVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author luoh6
* @description 针对表【properties(房产信息表)】的数据库操作Service
* @createDate 2025-10-24 10:24:52
*/
public interface PropertiesService extends IService<Properties> {

    /**
     * 根据楼栋号查询房产列表
     */
    List<String> getPropertiesByBuilding();

    /**
     * 根据房产状态查询房产列表
     */
    List<Properties> getPropertiesByStatus(String propertyStatus);

    /**
     * 根据业主ID查询房产列表
     */
    List<Properties> getPropertiesByOwnerId(Integer ownerId);

    /**
     * 根据多个条件查询房产列表
     */
    List<PropertiyVo> searchProperties(PropertyQueryDTO propertyQueryDTO);

    /**
     * 获取所有房产列表
     */
    List<Properties> getAllProperties();

    /**
     * 分页查询所有房产
     */
    Page<Properties> getPropertiesPage(Integer pageNum, Integer pageSize);

    /**
     * 分页查询房产（带条件）
     */
    Page<Properties> searchPropertiesPage(Integer pageNum, Integer pageSize, 
                                        String building, String room, String propertyStatus);

    /**
     * 根据楼栋号分页查询房产
     */
    Page<Properties> getPropertiesByBuildingPage(Integer pageNum, Integer pageSize, String building);

    /**
     * 根据状态分页查询房产
     */
    Page<Properties> getPropertiesByStatusPage(Integer pageNum, Integer pageSize, String propertyStatus);
}
